import {reqUserInfo,reqLogOut} from '@/api'
import {deleteToken} from '@/utils/auth'

//定义一个actions —— 接收组件里的动作
const actions = {
    //得到用户信息
	async getUserInfo({commit}){
		//发送请求获取用户信息
		let result = await reqUserInfo()
		//判断是否获取成功
		if(result.code === 200){
			//获取成功了
			commit('SAVE_USER_INFO',result.data)
		}else{
			alert(result.message)
			return Promise.reject(result.message)
		}
	},
	//用户退出登录
	async userLogout({commit}){
		//联系服务器退出登录
		let result = await reqLogOut()
		if(result.code === 200){
			commit('DELETE_USER_INFO') //清空了vuex中的用户信息
			deleteToken() //删除本地的token
		}else{
			alert(result.message)
			return new Promise(()=>{})
		}
	}
}

//定义一个mutations —— 用于真正去修改数据
const mutations = {
	SAVE_USER_INFO(state,info){
		state.userInfo = info
	},
	DELETE_USER_INFO(state){
		state.userInfo = {}
	}
}

//定义一个state —— 存储数据
const state = {
	userInfo:{}
}

//定义一个getters —— 对state中的数据进行一番处理
const getters = {
    
}

export default {
	actions,
	mutations,
	state,
	getters,
}